<?php
defined('EXEC') or die();
$transacao = 'manter_agenda';

if(!$auth->isRead($transacao)){
	Util::info(Config::AUTH_MESSAGE);
	return true;
}

//Importando a classes
Loader::import('com.atitudeweb.SQL');
Controller::addHead('jquery-ui.min', 'css');
Controller::addHead('jquery-ui.structure', 'css');
Controller::addHead('fullcalendar', 'css');
Controller::addHead('moment.min', 'js');
Controller::addHead('jquery-ui.min', 'js');
Controller::addHead('fullcalendar.min', 'js');

//Eventos da Agenda
if (@$_POST['evento'] == 'drag'){
	$id = $_POST['id'];
	$dt_agenda = $_POST['dt_agenda'];
	$nr_horario_inicio = $_POST['nr_horario_inicio'];
	$nr_horario_fim = $_POST['nr_horario_fim'];
	$sql = "UPDATE tethys.tb_agenda SET dt_agenda='{$dt_agenda}', nr_horario_inicio='{$nr_horario_inicio}',
	nr_horario_fim='{$nr_horario_fim}' WHERE ci_agenda = {$id}";
	/* echo $sql; exit; */
	if(execute($sql)){
	echo "<json value='{\"status\":\"success\"}'}/>";
	}else{
	echo "<json value='{\"status\":\"error\"}'}/>";
	}
}

if (@$_POST['evento'] == 'resize'){
	$id = $_POST['id'];
	$nr_horario_fim = $_POST['nr_horario_fim'];
	$sql = "UPDATE tethys.tb_agenda SET nr_horario_fim='{$nr_horario_fim}' WHERE ci_agenda = {$id}";
	if(execute($sql)){
	echo "<json value='{\"status\":\"success\"}'}/>";
	}else{
	echo "<json value='{\"status\":\"error\"}'}/>";
	}
}


//Alteração ou inclusão de um registro
if(isset($_GET['db']) && isset($_POST['form'])){
	$cd_cliente = $_POST['nm_cliente_id'];
	$dt_agenda = $_POST['dt_agenda'];
	$parts = explode('/', $dt_agenda);
	$dt_agenda = $parts[2].$parts[1].$parts[0];
	$nr_horario_inicio = $_POST['nr_horario_inicio'];
	$nr_horario_fim = $_POST['nr_horario_fim'];
	$ds_descricao = $_POST['ds_descricao'];
	$fl_status = $_POST['fl_status'];
	 
	/* echo '<pre>';
		print_r($_POST);
	echo '</pre>';
	die; */
	if($_POST['form'] == 0){ //cadastro
		$sqlRow = "SELECT nextval('tethys.tb_agenda_ci_agenda_seq') as ci_agenda";
		$ciRow = Connection::query($sqlRow)->fetch();
		$ci_agenda = $ciRow['ci_agenda'];
		$sql = "INSERT INTO tethys.tb_agenda(ci_agenda, cd_cliente, dt_agenda, nr_horario_inicio, nr_horario_fim, ds_descricao, fl_status)
		VALUES ($ci_agenda, $cd_cliente, '$dt_agenda', '$nr_horario_inicio', '$nr_horario_fim', '$ds_descricao', '$fl_status');";

	}elseif($_POST['form'] > 0){ //alteração
		if ($fl_status == '4'){
			$sql = "DELETE FROM tethys.tb_agenda WHERE ci_agenda = ".$_POST['form'];
		}else{
			$sql = "UPDATE tethys.tb_agenda
			SET cd_cliente=$cd_cliente, dt_agenda='$dt_agenda', nr_horario_inicio='$nr_horario_inicio', nr_horario_fim='$nr_horario_fim', ds_descricao='$ds_descricao',
			fl_status='$fl_status' WHERE ci_agenda = ".$_POST['form'];
		}
	}

	if(execute($sql)){
		Controller::setInfo('Agenda', 'Salvo com sucesso!', 'success', 'info-circle', 4500);	
		Controller::redirect(Util::setLink(array('form=null', 'db=null')));
	}
	else{
		Util::notice('Agenda', 'Ocorreu um erro!', 'error');
	}
}
?>
<link href='assets/css/fullcalendar.print.css' rel='stylesheet' media='print' />
<h3><i class="fa fa-calendar"></i> Agenda </h3>	
<div class="panel panel-default">
	<div class="panel-body">
		 <div id='calendar'></div>			
	</div>
</div>

<div class="modal fade bs-example-modal-lg" id="painel_agenda" tabindex="-1" role="dialog" aria-labelledby="Painel Agenda" aria-hidden="true">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Agendamento</h4>
      </div>
      <div class="modal-body">
      	<form action="<?php echo Util::setLink(array('db=1')) ?>" class="form" method="post" id="formInsertEdit" onsubmit="return test();">
      		<div class="row">
				<div class="col-md-8 form-group" id="cliente-load">
					<label class="control-label">Cliente: <span class="text-danger">*</span></label>
					<div class="input-group">
				    	<input type="text" id="nm_cliente" name="nm_cliente" autocomplete="off" class="form-control typeahead" 
				    		maxlength="90" value="<?php echo @$rowEdit['nm_cliente'] ?>" />
				      		<span style="right:40px; top: 0px; padding-top: 10px;" class="fa fa-check form-control-feedback hidden" aria-hidden="true"></span>
				      	<input type="hidden" id="nm_cliente_id" name="nm_cliente_id" value="<?php echo @$rowEdit['cd_cliente']?>"/>
						<span class="input-group-btn">
							<button id="edit-cliente" class="btn btn-default" disabled="disabled" type="button"><i class="fa fa-pencil-square-o"></i></button>
						</span>						
				    </div>
			    </div>
				<div class="col-md-4">
					<div class="form-group">
						<label class="control-label">Situação do Agendamento: <span class="text-danger">*</span></label>
						<select id="fl_status" class="form-control" name="fl_status">
							<option value="1">Marcação</option>
							<option value="2">Confirmação</option>
							<option value="3">Prova</option>
							<option value="4">Desmarcado pelo Cliente</option>
							<option value="5">Desmarcado pelo Empresa</option>
							<option value="6">Erro de Marcação</option>
							<option value="7">Falta</option>
						</select>
					</div>
				</div>
			</div>
			<fieldset>
				<legend>Dados da Marcação</legend>
				<div class="row">
					<div class="col-md-3">
						<div class="form-group">
							<label class="control-label"> Data de Agendamento</label>
							<div class='input-group'>
								<input type="text" id="dt_agenda" name="dt_agenda" class="form-control" maxlength="90" readonly="readonly"/>
								<span class="input-group-addon">
									<span class="glyphicon glyphicon-calendar"></span>
			                    </span>
							</div>
						</div>	
					</div>
					<div class="col-md-2">
						<div class="form-group">
							<label class="control-label"> Inicio</label>
							<div class='input-group date' id='timeInicio'>
			                    <input type='text' class="form-control" id="nr_horario_inicio" name="nr_horario_inicio" maxlength="90" data-format="HH:mm" readonly/>
			                    <span class="input-group-addon"><span class="glyphicon glyphicon-time"></span>
			                    </span>
			                </div>
						</div>
					</div>
					<div class="col-md-2">
						<div class="form-group">
							<label class="control-label"> Fim</label>
							<div class='input-group date' id="timeFim">
								<input type="text" id="nr_horario_fim" name="nr_horario_fim" class="form-control" maxlength="90" readonly/>
								<span class="input-group-addon"><span class="glyphicon glyphicon-time"></span>
			                    </span>
							</div>
						</div>
					</div>
					<div class="col-md-3">
						<div class="form-group">
							<label class="control-label"> Duração </label>
							<div class='input-group date'>
								<input type="text" id="duracao" name="duracao" class="form-control" maxlength="90" readonly="readonly"/>
								<span class="input-group-addon">
									<span class="glyphicon glyphicon-dashboard"></span>
			                    </span>
							</div>
						</div>
					</div>				
				</div>
				<div class="row">	
					<div class="col-md-12">
						<div class="form-group">
							<label class="control-label">Descrição:</label>
							<textarea id="ds_descricao" name="ds_descricao" class="form-control" rows="5" cols="52"><?php echo stripcslashes(@$rowEdit['ds_fonte']); ?></textarea>
						</div>
					</div>
				</div>				
			</fieldset>	
			<input type="hidden" id="form" name="form" value="0"/>
      	</form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-primary" id="btn_agenda">Salvar</button>
        <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
      </div>
    </div>
  </div>
</div>
<script type="text/javascript">
$(document).ready(function() {	
	$("#btn_agenda").click(function(){
		$('#formInsertEdit').submit();
		$('#painel_agenda').modal('hide');
	});
	
	$('#calendar').fullCalendar({
		weekends: true,
		lang: 'pt-BR',
		firstHour: 8,
		minTime: "08:00:00",
		maxTime: "22:00:00",
		monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
		monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun','Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
		dayNames: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],
		dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'],
		allDayText: 'Dia Inteiro',
		defaultView: 'agendaWeek',
		axisFormat: 'H:mm',
		hiddenDays: [0],
		slotDuration: '00:15:00',
		buttonText: {
			today: 'hoje',
			month: 'mês',
			week: 'semana',
			day: 'dia'
		},
		timeFormat: 'h:mm',
		header: {
			left: 'prev,next today',
			center: 'title',
			right: 'month,agendaWeek,agendaDay'
		},
		columnFormat: {
			month: 'ddd',
			week: 'ddd D/MM',
			day: 'dddd'
		},
		timeFormat: {
			'': 'H(:mm)',
			agenda: 'H:mm'
		},
		selectable: true,
		selectHelper: true,
		select: function(start, end, allDay) {
			$("#painel_agenda").modal('show');
			$("#dt_agenda").val(start.toISOString().substr(0, 10).split('-').reverse().join('/'));
			$("#nr_horario_inicio").val(moment(start).format("HH:mm"));
			$("#nr_horario_fim").val(moment(end).format("HH:mm"));
			$("#duracao").val(duracao($("#nr_horario_inicio").val(),$("#nr_horario_fim").val()));
			$('#calendar').fullCalendar('unselect');
		},
		editable: true,
		events: 'partials/get_agenda.php',
		eventClick: function(event) {
			var id = event.id;
			$.ajax({
				url: "partials/get_event.php",	
				dataType:"json",
				type: "POST",
				data: {id:id},
				success: function(json){
					$("#nm_cliente").val(json.nm_cliente).attr("disabled", "disabled");
					$("#nm_cliente_id").val(json.ci_cliente);
					$("#dt_agenda").val(json.dt_agendacalendar);
					$("#fl_status").val(json.fl_status);
					$("#nr_horario_inicio").val(json.nr_horario_inicio);
					$("#nr_horario_fim").val(json.nr_horario_fim);
					$("#duracao").val(duracao($("#nr_horario_inicio").val(),$("#nr_horario_fim").val()));
					$("#ds_descricao").val(json.ds_descricao);
					$("#form").val(json.ci_agenda)
					$('#calendar').fullCalendar('unselect');
					$("#painel_agenda").modal('show');
				}
			});				
		},
		eventDrop: function(event, delta, revertFunc) {
			var start = event.start;
			var end = event.end;
			$.ajax({
				data:{
					id: event.id,
					cliente: event.title,
					dt_agenda: end.toISOString().substr(0, 10).split('-').reverse().join('/'),
					nr_horario_inicio: moment(start).format("HH:mm"),
					nr_horario_fim: moment(end).format("HH:mm"),
					evento: "drag",
					action:"update"
				},
				dataType: "html",
				type: "POST",
				success: function(html){
					var json = JSON.parse($(html).find("json")[0].attributes.value.value);
					console.log(json);
					//$("#contrato_edit").html(json.contrato);					
					
				}
			});		
	    },
	    eventResize: function(event, delta, revertFunc) {
			var end = event.end;
			$.ajax({
				data:{
					id: event.id,
					cliente: event.title,
					nr_horario_fim: moment(end).format("HH:mm"),
					evento: "resize",
					action:"update"
				},
				dataType: "html",
				type: "POST",
				success: function(html){
					var json = JSON.parse($(html).find("json")[0].attributes.value.value);
					console.log(json);
					//$("#contrato_edit").html(json.contrato);					
					
				}
			});	
	    }
	});
	$('#timeInicio').datetimepicker({
        pickDate: false,
        language:'pt-br',
        minuteStepping:15,
        format: 'LT',
        autoclose: true,
        format: 'HH:mm',
        pickSeconds: false,
        use24hours: true
    });
	$('#timeFim').datetimepicker({
		pickDate: false,
        language:'pt-br',
        minuteStepping:15,
        format: 'LT',
        autoclose: true,
        format: 'HH:mm',
        pickSeconds: false,
        use24hours: true
    });
});

function duracao(start,end){
	s = start.split(':');
    e = end.split(':');

    min = e[1]-s[1];
    hour_carry = 0;
    if(min < 0){
        min += 60;
        hour_carry += 1;
    }
    hour = e[0]-s[0]-hour_carry;
    time = (parseInt(hour)*60)+parseInt(min);
    //diff = hour + ":" + min;
    return time+" minutos";
}

var dados;
$('#nm_cliente').typeahead({
	source: function (query, process) {
	    unidades = [];
	    map = {};
	    $.get(
			'partials/paciente_json.php',
			{'term':$('#nm_cliente').val()},
	    	function(data){
	    		$.each(data, function (i, unidade) {
	    			map[unidade.label] = unidade;
	    		    unidades.push(unidade.label);
				});
	    		process(unidades);
	    	},'json'
	    );
	}, 
	updater: function (item) {		
	    selectedId = map[item].id;
	    $('#nm_cliente_id').val(selectedId);
	    $('#cliente-load').addClass('has-success has-feedback').find('input:eq(0)').prop('disabled', true);
	    $('#cliente-load').find('.form-control-feedback').removeClass('hidden');
	    $('#edit-cliente').prop('disabled', false).click(function(){
		    $(this).prop('disabled', true);
	    	$('#cliente-load').removeClass('has-success has-feedback').find('input:eq(0)').prop('disabled', false).val('');
	    	$('#cliente-load').find('.form-control-feedback').addClass('hidden');
	    	$('#cliente-load').find('input:eq(1)').val('');
	    });
	    return item;
	}
});
function testModal(){
	var valid=true;
	$("#formInsertEdit").find("input").each(function(index){
		$(this).removeClass("ui-state-error");						
	});

	return valid;
}
function test(){

}
</script>